/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package controller;

import javax.swing.JOptionPane;
import model.Funcionario;
import model.GenericoDAO;
import org.hibernate.Session;
import util.HibernateUtil;
import view.JCadastroUsuario;
import view.JPrincipal;


public class ControllerCadastraUsuario {
    
    private JPrincipal jf;
    private String cpf;
    private Funcionario funcionario;
    
    
    public ControllerCadastraUsuario(JPrincipal jf) {

        this.jf = jf;  
    }
    
    
    public void iniciaApp(){
            // Cria a tela e passa o controle pra tela
            JCadastroUsuario janela = new JCadastroUsuario(this,jf);
            janela.exibe();
    }
    
    public boolean verifica_se_funcionario_tem_cadastro(String cpf){
        
        //JOptionPane.showMessageDialog(null, "OK");
        
        Session s = HibernateUtil.getSessionFactory().openSession();
        Funcionario funcionario = null;
        
        try{
            
            funcionario = (Funcionario)s.createQuery("from model.Funcionario f where f.cpf =:cpf")
                        .setParameter("cpf", cpf)
                        .uniqueResult();
            
        }catch (Exception e) {
            
            JOptionPane.showMessageDialog(null, "Erro ao carregar Model Funcionario - pesquisa de cpf: "+e.getMessage());
            
        }
        
        if (funcionario == null){
            return false; 
        }else{
            return true;
        }
        
    }
    
    public Funcionario retorna_dados_do_funcionario(String cpf){
        
        //JOptionPane.showMessageDialog(null, "OK");
        
        this.cpf = cpf;
        
        Session s = HibernateUtil.getSessionFactory().openSession();
        Funcionario funcionario = null;
        
        try{
            
            funcionario =   (Funcionario)s.createQuery("from model.Funcionario f where f.cpf =:cpf")
                        .setParameter("cpf", cpf)
                        .uniqueResult();
            
        }catch (Exception e) {
            
            JOptionPane.showMessageDialog(null, "Erro ao carregar dados do Model funcionario: "+e.getMessage());
            
        }
        
        return funcionario;

    }
    
    public boolean cadastra_funcionario(Funcionario funcionario){
                
        this.funcionario = funcionario;
        
        GenericoDAO dao = new GenericoDAO();
        if(dao.Salvar(funcionario)){
            
            return true;
        }else{
            
            return false;
        }
        
        
    }
    
    public boolean altera_funcionario(Funcionario funcionario){  
        GenericoDAO dao = new GenericoDAO();  
        if(dao.Atualizar(funcionario)){
            return true;
        }else{
            return false;
        }
    }    
}
